技術問答
技術文章
iT 徵才
Tag
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2025 iThome 鐵人賽
DAY
3
0
自我挑戰組
安豬複習
系列 第
3
篇
#02
17th鐵人賽
hcalan
2025-09-17 23:38:30
34 瀏覽
分享至
Android 系統架構總覽:Linux Kernel、HAL、Native libraries、Framework、Applications
Android 系統層級
Android 系統大致分為 五個主要層級:
Linux Kernel (核心層)
Hardware Abstraction Layer (HAL, 硬體抽象層)
Native Libraries & Android Runtime (本地函式庫與執行環境)
Application Framework (應用框架層)
Applications (應用程式層)
圖這邊有
Link
Linux Kernel (核心層)
基於 Linux 核心,版本通常由 Google 維護
提供 記憶體管理、程序管理、驅動程式 (Driver)、網路堆疊
Android 特有的模組:
Binder IPC Driver(跨進程通訊)
wakelocks(電源管理)
ASHMEM(共享記憶體)
Hardware Abstraction Layer (HAL)
介於 硬體驅動 與 Framework 之間的中介層
提供 統一 API,避免 Framework 直接依賴硬體實作
例如:
Camera HAL(攝影機功能)
Sensor HAL(加速度計、陀螺儀)
Audio HAL(音訊輸入/輸出)
Native Libraries & Android Runtime (ART)
Native Libraries
SQLite(資料庫)
OpenGL ES(圖形渲染)
WebKit(瀏覽器引擎,現今已改為 Chromium-based WebView)
Media Framework(音訊/影片編解碼)
Android Runtime (ART)
取代舊的 Dalvik VM
支援 Ahead-of-Time (AOT) 與 Just-in-Time (JIT) 編譯
提供垃圾回收 (GC) 機制
Application Framework (應用框架層)
為應用程式提供 高階 API
主要系統服務由 SystemServer 啟動並運行:
ActivityManagerService (AMS):管理應用與生命週期
WindowManagerService (WMS):視窗與 UI 管理
PackageManagerService (PMS):APK 安裝與權限檢查
ContentProvider、LocationManager、NotificationManager...
Applications (應用程式層)
使用 Java/Kotlin 撰寫
利用 Application Framework 提供的 API
分為:
系統應用(設定、聯絡人、電話、相機)
第三方應用(LINE、Facebook、遊戲 App 等)
Questions
為什麼需要 HAL, Android 卻不讓 Framework 直接呼叫硬體驅動?
Binder IPC 在 Android 系統中的關鍵角色是什麼?
ART 的 AOT + JIT 混合模式相比傳統 JVM 有什麼優勢?
留言
追蹤
檢舉
上一篇
#01
下一篇
#03
系列文
安豬複習
共
31
篇
目錄
RSS系列文
訂閱系列文
0
人訂閱
27
#26
28
#27
29
#28
30
#29
31
#30
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19768
篇
完賽人數
529
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
桌機三更半夜自動開機不知在幹啥?是在下載還是在上傳資料?嚇死寶寶.去查設定我沒有設定在三更半夜更新或是掃毒呀!去查紀錄亦沒有當日凌晨的瀏覽紀錄,這到底是怎麼一回事,要如何查詢?是被安裝了病毒軟體?
碩士學歷能幫助我突破職涯天花板嗎?
群輝NAS套件Docker部署Outline
維護合約的合理性
如何讓Windows 11 Professional 開啟Synology DS925+網路芳鄰的速度加快?
librenms 25.4.0 重開機都要重新設定
Librenms ssl憑證檢查 通知方式
熱門回答
碩士學歷能幫助我突破職涯天花板嗎?
維護合約的合理性
群輝NAS套件Docker部署Outline
桌機三更半夜自動開機不知在幹啥?是在下載還是在上傳資料?嚇死寶寶.去查設定我沒有設定在三更半夜更新或是掃毒呀!去查紀錄亦沒有當日凌晨的瀏覽紀錄,這到底是怎麼一回事,要如何查詢?是被安裝了病毒軟體?
librenms 25.4.0 重開機都要重新設定
熱門文章
資安入門與實務應用介紹 28:APT(高階持續性威脅)攻擊解析與防範方法
資安入門與實務應用介紹 29:智能合約漏洞與加密貨幣詐騙案例分析
D30|AI 時代的資訊判讀力:防詐、反假、識謊的新資安素養
Day 7:防火牆配置與流量過濾(Firewall Configuration and Traffic Filtering)
C++開啟資料夾及檔案的方法
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}